# todo: 给定一段英文文本（单词间都是空格分隔），请编写一个函数，将每个单词的首字母转成大写。
# 输入: "auto school of witchcraft and wizardry"
# 输出: "Auto School Of Witchcraft And Wizardry"

# input_list = "auto school of witchcraft and wizardry"
# input_list.split()
# s = input_list.split()
# print(s)
# a = ""
# for i in s:
#     b = i.capitalize()
#
#     a = a + b + " "
#
# print(a)

# todo: 给定一个字符串，将它们其中的每个字符（区分大小写）再重复一次。
# 输入: "Hello World"
# 输出: "HHeelllloo  WWoorrlldd"

# list_s= "Hello World"
# for i in list_s:
#     print(i*2,end="")


# todo: 给定一个字符串，将其中的每个单词的字母顺序进行反转。空格的个数不定，记得需要保留所有的空格，请编写一个python函数
# 输入: "hello  world"
# 输出: "olleh  dlrow"

# list_s= "hello  world"
# list_s1 = list_s.split()
# for i in list_s1:
#     print(i[::-1],end=" ")


# todo: 请输出1-1000的数字如下格式
# 输入: 1、2、99
# 输出: 0001、0002、0099


# todo: 单词都是重复的，字符串去重
# 输入: "Wingardium Leviosa Wingardium Leviosa Expelliarmus Leviosa Expelliarmus"
# 输出: "Wingardium Leviosa Expelliarmus"

# list_s = "Wingardium Leviosa Wingardium Leviosa Expelliarmus Leviosa Expelliarmus"
# list_s1 = list_s.split()
# list_s2 = []
# for i in list_s1:
#     if i not in list_s2:
#         list_s2.append(i)
# print(list_s2)

# todo: 输入一个字符串，打印出该字符串中字符的所有排列，可以以任意顺序返回这个字符串数组，但里面不能有重复元素。
#  输入: s = "abc"
#  输出: ["abc","acb","bac","bca","cab","cba"]

s="abc"
def permute(s):
    if len(s) == 1:
        return [s]
    list_1 = []
    for i in range(len(s)):
        first_char = s[i]
        remaining_chars = s[:i] + s[i+1:]
        for perm in permute(remaining_chars):
            list_1.append(first_char + perm)
    return list_1

s = "abc"
result = permute(s)
print(result)






# todo: 输入一个字符串，打印出该字符串中字符的所有排列，可以以任意顺序返回这个字符串数组，但里面不能有重复元素。
#  输入: s = "abc"
#  输出: ["abc","acb","bac","bca","cab","cba"]


# todo: 给定一个数字列表，其中每个元素都是正整数。请编写一个函数，将列表整体所代表的数字加1，然后返回成新列表。
#  输入：[2, 3, 9]，输出：[2, 4, 0]
#  输入：[4, 3, 2, 5]，输出：[4, 3, 2, 6]

# todo: 你一个数字列表nums，请编写一个函数，将列表中的元素向右移动 k 个位置，然后返回移动后的列表。其中 k 是非负数
#  输入: [1,2,3,4,5,6,7], k = 3
#  输出: [5,6,7,1,2,3,4]

# todo: 给定一个由纯数字组成的列表，其中可能存在多个重复的数字，请编写一个函数，将相同数字中先出现的数字移除，只保留该重复数字的最后一个。返回去重后的列表
#  输入: [3, 4, 4, 3, 6, 3]
#  输出: [4, 6, 3]。因为对于数字3，索引是0和3的会被移除；对于数字4，索引1的会被移除

# todo: 给定一个数字列表，请编写一个函数，从左往右，遇到是偶数的则一直舍弃；直到遇到奇数，返回余下的所有元素。
#  输入：[2,6,4,10,1,5,4,3]
#  输出：[1,5,4,3]